﻿using System;
using System.Xml.Serialization;

namespace GFXHelper
{
    /// <summary>
    /// Klasse für Server Einstellungen. Diese Klasse ist serialisierbar.
    /// </summary>
    [Serializable()]
    public class ServerSettings
    {
        [XmlArrayItem("Adresse", typeof(string))]
        public string[] Adressen;
        [XmlArray("ServerListe")]
        [XmlArrayItem("Server", typeof(int))]
        public int[] Server;

        /// <summary>
        /// Erstellt eine neue Instanz der ServerSettings-Klasse mit voreingestellten Parametern.
        /// </summary>
        public ServerSettings()
        {
            //Glaub mir, diese Adressen aufzuschreiben, war anstrengend :-(
            this.Adressen = new string[] { "wurzelimperium.de", "molehillempire.com", "molehillempire.nl", "molehillempire.fr", "bg.molehillempire.com", "sadowajaimperija.ru", "zieloneimperium.pl", "molehillempire.es", "bahcivanlardiyari.com", "zeleneimperium.cz", "molehillempire.se", "kertbirodalom.hu", "molehillempire.com.pt", "molehillempire.ro", "kipourosendrasi.gr", "molehillempire.it", "molehillempire.dk", "molehillempire.com.br" };
            this.Server = new int[] { 46, 4, 2, 3, 2, 5, 21, 3, 5, 4, 2, 5, 2, 2, 2, 1, 1, 1 };
        }

        /// <summary>
        /// Erstellt eine neue Instanz der ServerSettings-Klasse.
        /// </summary>
        /// <param name="adressen">Die Adressen zu den verschiedenen Sprach-Versionen von Wurzelimperium.</param>
        /// <param name="server">Die Anzahl der Server der verschiedenen Sprach-Versionen von Wurzelimperium.</param>
        public ServerSettings(string[] adressen, int[] server)
        {
            if (adressen == null)
            {
                throw new ArgumentNullException("adressen");
            }
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }
            this.Adressen = adressen;
            this.Server = server;
        }
    }
}
